/*
题目：平方数之和
给定一个非负整数 c ，你要判断是否存在两个整数 a 和 b，使得 a2 + b2 = c 。
 */
public class JudgeSquareSum {
    public boolean judgeSquareSum(int c) {
        long i = 0;
        long j = (long)Math.sqrt(c);  //这个处理可以减少大量计算量
        while (i <= j) {
            long squ = i * i + j * j;
            if (squ < c) {
                i++;
            } else if (squ > c || squ > Integer.MAX_VALUE){
                j--;
            } else {
                return true;
            }
        }
        return false;
    }
}
